import axios from 'axios';

axios.defaults.baseURL = 'https://www.liulongbin.top:8888/api/private/v1/';

axios.interceptors.request.use(config => {
	config.headers['Authorization'] = sessionStorage.getItem('token');
	return config;
})

axios.interceptors.response.use(config => {
	const {
		data: {
			meta: {
				status,
				msg
			},
			data: data1
		}
	} = config;
	switch (status) {
		case 200:
		case 201:
		case 204:
			// data1不为空 data1的token不为空
			data1 && data1.token && sessionStorage.setItem('token', data1.token);
			return Promise.resolve({
				data1,
				msg
			});
		default:
			return Promise.reject(msg);
	}
});

export default {
	// 登录
	getLogin({
		username,
		password
	}) {
		return axios.get('login', {
			params: {
				username,
				password
			}
		})
	},
	// 获取左侧菜单数据
	getMenus() {
		return axios.get('menus')
	},
	// 获取用户列表数据
	getUser({
		query,
		pagenum,
		pagesize
	}) {
		return axios.get('users', {
			params: {
				query,
				pagenum,
				pagesize
			}
		})
	},
	// 用户添加
	getaddUser(model) {
		return axios.post('users', model)
	},
	// 用户状态
	getStatus(id, mg_state) {
		return axios.put(`users/${id}/state/${mg_state}`)
	},
	// 用户修改
	getEditUser(a) {
		return axios.put(`users/${a.id}`, a)
	},
	// 用户删除
	getDelUser(id) {
		return axios.delete(`users/${id}`)
	},
	// 获取用户权限列表
	getRights() {
		return axios.get(`rights/list`)
	},
	// 获取角色列表数据
	getRoles() {
		return axios.get('roles')
	},
	// 添加角色
	getAddRoles(roleName) {
		return axios.post('roles', roleName)
	},
	// 修改角色
	getEditRoles(b) {
		return axios.put(`roles/${b.id}`, b);
	},
	//  删除角色
	getDelRoles(id) {
		return axios.delete(`roles/${id}`)
	},
	// 删除指定权限
	getDelAssignRole(role, rights) {
		console.log(role, rights)
		return axios.delete(`roles/${role.id}/rights/${rights}`)
	},
	
	// 获取分配权限列表
	getAuthList(){
		return axios.get(`rights/tree`);
	},
	// 分配权限
	getAuthLimits(roleId,rids) {
		console.log(roleId,rids)
       return axios.post(`roles/${roleId}/rights`,{
		   rids,
	   })
	},
	// 商品分类列表
	getGoods(){
		return axios.get('categories');
	},
	// 获取参数列表
	getGoodsParams(id){
		// console.log(c)
		return axios.get(`categories/${id}/attributes`);
	},
	
	// 订单列表
	getOrders({
		query,
		pagenum,
		pagesize
	}) {
		return axios.get('orders', {
			params: {
				query,
				pagenum,
				pagesize
			}
		});
	},
	// 物流进度
	getLogistics(id) {
		return axios.get(`kuaidi/${id}`)
	},
	// 数据统计
	getReports() {
		return axios.get('reports/type/1');
	}
}
